package com.smartleanx.module.hrm.service.esign.temp;


import cn.hutool.json.JSONObject;
import com.google.gson.JsonObject;
import com.smartleanx.framework.common.pojo.PageResult;
import com.smartleanx.module.hrm.service.esign.temp.param.HrmEContractTempFileParam;
import com.smartleanx.module.hrm.service.esign.temp.param.HrmEContractTempParam;
import com.smartleanx.module.hrm.service.esign.temp.po.HrmEFolder;
import com.smartleanx.module.hrm.service.esign.temp.result.*;
import com.smartleanx.module.hrm.service.esign.temp.vo.HrmEContractTempVo;

import java.util.List;

public interface ESignDocTempService {

    //添加控件
    void saveComponentToEsign();
    //获取控件
    JsonObject getEsignComponent();
    //删除自定义控件
    void removeEsignComponent();
    //上传文件
    String uploadFile(HrmEContractTempFileParam fileParam);
    //员工附件标题
    List<HrmEFilesResult> getFiles();
    //保存文件
    Long saveFile(HrmEContractTempFileParam fileParam);
    //获取编号生成规则信息
    List<HrmContractCodeResult> getContractCodeData(Long tempId);
    //保存模板信息
    JSONObject saveDocTemp(HrmEContractTempVo hrmEContractTempVo);

    //获取模板列表
    PageResult<HrmEContractTempResult> getDocTempPage(HrmEContractTempParam param);
    //获取模板详情
    HrmEContractTempDetailResult getDocTempDetail(Long id);
    //修改模板信息
    JSONObject updateDocTemp(HrmEContractTempVo hrmEContractTempVo);
    //启用停用模板
    boolean updateDocTempStatus(HrmEContractTempParam param);
    //删除模板
    boolean removeDocTemp(HrmEContractTempParam param);
    //添加分组
    boolean saveFolder(HrmEFolder hrmEFolder);
    //修改分组
    boolean updateFolder(HrmEFolder hrmEFolder);
    //删除分组
    boolean removeFolder(HrmEFolder hrmEFolder);

    HrmEFolder getFolderDetail(Long id);
    //查询分组
    List<HrmEFolderResult> getFolderResult(String type);
    //查询父级列表
    List<HrmEFolderResult> getParentFolderResult(String type);
    //获取轮询状态
    Integer getSaveUpdateStatus(String tempSignId);

}
